RDS MySQL 5.5からAmazon Auroraにオンライン移行する方法

RDS MySQL 5.5からAmazon Auroraにオンライン移行する方法

Clock Icon2017.06.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

AWSチームのすずきです。

Amazon RDS DB for MySQL(以下、RDS MySQL)、DBエンジンとして5.6を利用している場合、 AWSコンソールを利用して、Amazon Aurora のリードレプリカを作成出来ます。

今回、RDS MySQL 5.5 のDBを、RDS MySQL 5.6 の多段リードレプリケーション経由で、 Amazon Aurora にオンライン移行する機会がありましたので、紹介させて頂きます。

概要図

mysql55-rr-aurora-09

手順

リードレプリカの作成

  • 移行元となるMySQL5.5のDBを指定して、リードレプリカを作成します。

mysql55-rr-aurora-01

  • 所要時間は主にDB容量、スペックに依存しますが、今回のDB容量8GB弱の環境では10分程度で完了しました。

レプリカノードのアップグレード

  • リードレプリカノードのDBエンジン、Auroraレプリケーションに対応するバージョン5.6に変更します。
  • 今回、DBエンジンのバージョンは、5.6.27を利用しました。

mysql55-rr-aurora-02

  • DBインスタンスの変更「すぐに適用」のチェックを行い、即時変更としました。

mysql55-rr-aurora-03

  • パラメータグループ設定はデフォルトを利用しました。カスタマイズが必要な場合、事前にMySQL5.6用のDBパラメータグループを用意します。
  • 所要時間は7分程でした。

レプリカノードの自動バックアップ設定

  • レプリカノードからの多段リードレプリカを設定するため、自動バックアップを有効とします
  • レプリカノードで取得したバックアップ(DBスナップショット)は初期同期のみに利用し長期保持する必要性はない為、保存期間は1日としました。
  • DBインスタンスの変更「すぐに適用」のチェックを行い、即時変更としました。

mysql55-rr-aurora-04

  • 所要時間は7分程でした。

Aurora リードレプリカの作成

  • MySQL5.6、自動バックアップを有効にしたリードレプリカから、Auroraリードレプリカを作成します。

mysql55-rr-aurora-05

  • 今回の利用用途は検証環境、インスタンスタイプは「t2.small」、マルチAZ配置は実施しない設定としました。
  • パラメータグループ設定はカスタマイズが必要な場合、事前にAurora用の設定を用意します。

mysql55-rr-aurora-08

  • 所要時間は45分程でした。

レプリケーションの動作確認

MySQL 5.6 ノード

中継環境となるRDS MySQL5.6環境の稼動状態を確認します

  • レプリケーションの状態が「レプリケーション中」
  • リードレプリカのソース、意図したレプリカ元(MySQL5.5のマスタDB)である事。
  • レプリケーションエラーが発生していない事

mysql55-rr-aurora-12

レプリケーションの詳細で、レプリカ元のDB、レプリカ先のAuroraを確認します。

mysql55-rr-aurora-13

Aurora

DB クラスターの詳細

  • レプリケーションソースの確認を行います。

mysql55-rr-aurora-11

SHOW SLAVE STATUS 情報

  • 「mysql」コマンド等を利用し、DB管理者ユーザでDB接続します
  • 「SHOW SLAVE STATUS」を実行し、「Slave_IO_Running」「Slave_SQL_Running」が「Yes」である事を確認します
mysql>  show slave status \\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.7.15.0
                  Master_User: rdsrepladmin
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin-changelog.000168
          Read_Master_Log_Pos: 95945
               Relay_Log_File: relaylog.000034
                Relay_Log_Pos: 96118
        Relay_Master_Log_File: mysql-bin-changelog.000168
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

Aurora 昇格

  • Auroraのレプリケーションを解除して本番DBとして利用する場合、「リードレプリカへの昇格」を実施します。
  • 不要となったリードレプリカ環境を削除する場合にも、リードレプリカの昇格が必要です。

mysql55-rr-aurora-10

  • 検証用のDBが必要な場合、リードレプリカのAuroraからクローンを作成する事も可能です。

mysql55-rr-aurora-07

まとめ

RDS MySQL 5.6の多段レプリカを経由する事で、RDS MySQL 5.5からAuroraのリードレプリカを作成し、 DB移行を短時間の停止で実現する事ができました。

MultiAZで構成されたRDSであれば、リードレプリカの追加はマスタDBへの動作影響なく実施する事が可能です。

ダウンタイムのないパッチ適用や、本番環境のDBから検証環境を手軽に複製できるデータベースのクローン機能など、 クラウドネィティブなRDBMSとして進化を続けるAmazon Aurora。 RDS MySQL環境からの移行の際には、レプリケーション機能をご活用ください。

参考

AWS公式

MySQL公式

ブログ

  • Developers.IO

https://dev.classmethod.jp/cloud/aws/replication-from-rds-mysql57-to-aurora/

[新機能]Amazon Auroraで高速にクローンを作成できます

Amazon RDSの多段リードレプリカを試してみた

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.